﻿using Abp.Application.Services;
using MyCompanyName.AbpZeroTemplate.Authorization.Users.Dto;
using MyCompanyName.AbpZeroTemplate.Prm.Project.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;

namespace MyCompanyName.AbpZeroTemplate.Prm.Project
{
    public interface IProjectApAppService : IApplicationService
    {
        //Dto.ProjectApplicationOutPut GetAppByStatus(string no);


        /// <summary>
        /// 项目申请提交
        /// </summary>
        /// <param name="ProjectNo"></param>
        /// <param name="EffectiveTime"></param>
        /// <param name="ExpirationTime"></param>
        /// <param name="Note"></param>
        /// <returns></returns>
        Task SubmitApply(CreateProjectApplicationInPut app);

        /// <summary>
        /// 获取有项目审核权限的人员
        /// </summary>
        /// <param name="projectno"></param>
        /// <returns></returns>
        List<UserListDto> GetProAppAuditUsers([FromUri]string projectno);

        /// <summary>
        /// 项目申请记录
        /// </summary>
        /// <param name="status"></param>
        /// <returns></returns>
        List<Dto.ProjectApplicationOutPut> GetApplysForMe([FromUri]string status);

        /// <summary>
        /// 根据Id得到项目申请
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Dto.ProjectApplicationOutPut GetProApp(int id);


        /// <summary>
        /// 申请历史
        /// </summary>
        /// <returns></returns>
        List<Dto.ProjectApplicationOutPut> GetApplyHistorys(int id);

        /// <summary>
        /// 审核
        /// </summary>
        /// <param name="_app"></param>
        void AuditProApp(AuditProjectApplicationInPut _app);
    }
}
